<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en">
<!-- saved from url=(0052)http://www.courses.ncsu.edu/csc501/lec/001/readings/ -->
<HTML><HEAD><META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
   
   <META name="GENERATOR" content="Mozilla/4.76 [en] (X11; U; Linux 2.4.5-ac18.asl i686) [Netscape]">
   <TITLE>Readings</TITLE>
</HEAD><BODY bgcolor="#FFFFFF">

<H3>Lecture Notes and Reading Material</H3>

We have <A href="http://www2.lib.ncsu.edu/browsesubjects/?subject=22&subject_group=4">online
access</A> to IEEE and ACM publications (among others). Most articles
below require that <B>you find and download them</B>, which means that
you get some experience in literature search on the side. If you have
problems with the download, please read about their <A href="http://www.lib.ncsu.edu/proxy/proxy_description.html">access
mechanisms</A> and report problems to the library.

<UL>
<LI> Introduction
     <A href="http://www.courses.ncsu.edu/csc501/lec/001/readings/lec1www.pdf">PDF</A> /
     <A href="http://www.courses.ncsu.edu/csc501/lec/001/readings/lec1www.ppt">PPT</A>
     <BR>
     Textbook Chapters 1-2<BR>
       Background References:
       <UL>
       <LI>  D. M. Ritchie and K. Thompson.
		<A href="http://cm.bell-labs.com/cm/cs/who/dmr/cacm.html">
		The Unix Time-Sharing System.</A>
                Communications of the ACM, Vol. 17, No. 7, July 1974.
       </LI></UL>

</LI><LI> Processes, Threads, and Synchronization
     <A href="http://www.courses.ncsu.edu/csc501/lec/001/readings/lec2www.pdf">PDF</A> /
     <A href="http://www.courses.ncsu.edu/csc501/lec/001/readings/lec2www.ppt">PPT</A>
     <BR>
     Textbook Chapters 3-6
       <UL>
       <LI>
       <A href="http://moss.csc.ncsu.edu/~mueller/ftp/pub/PART/pthreads_usenix93.pdf">
       "A Library Implementation of POSIX Threads under UNIX"</A> by
       <A name="threads-implementation2">Frank Mueller</A> in
       Proceedings of the USENIX Conference, Jan 1993, pages 29-41

        </LI><LI>
        <A href="http://portal.acm.org/citation.cfm?id=1378747">
	TxLinux and MetaTM: transactional memory and the operating
	system</A>, Christopher J. Rossbach, Owen S. Hofmann, Donald
	E. Porter,  Hany E. Ramadan, Aditya Bhandari, Emmett Witchel, 
	Communications of the ACM , September 2008.

       </LI></UL>

       Background References:

       <UL>

       <LI><A href="http://www.acm.org/dl">Scheduler
       Activations</A>. Anderson T.E, Bershad B.N,
       Lazowska E.D and Levy H.M, ACM Transactions on
       Computer Systems, Volume 10, No. 1, Feb 1992

       </LI><LI>  M. Herlihy.  
	<A href="http://www.acm.org/dl">
	A Methodology for Implementing Highly Concurrent Data Objects.</A>
	ACM Transactions on Programming Languages, volume 15, 
	number 5, 1993.

	</LI><LI>
	<A href="http://ieeexplore.ieee.org/iel4/914/7905/00698569.pdf?isnumber=&arnumber=698569">
	Transactional Memory: Architectural Support for Lock-free Data
	Structures</A>, M. Herlihy and J. Eliot B. Moss, ISCA'93

       </LI><LI> <A href="http://ieeexplore.ieee.org/iel5/10156/32464/01515581.pdf?isnumber=&arnumber=1515581">
       Characterization of TCC on Chip Multiprocessors</A> Austen McDonald,
       JaeWoong Chung, Hassan Chafi, Chi Cao Minh, Brian Carlstrom, Lance
       Hammond, Christos Kozyrakis, and Kunle Olukotun, PACT'05

       </LI></UL>

       Further Reading:

       <UL>

       <LI> Hubertus Franke, Rusty Russell, Matthew Kirkwood,
	   <A href="http://www.kernel.org/doc/ols/2002/ols2002-pages-479-495.pdf">
	      Fuss, futexes and furwocks: Fast Userlevel Locking in Linux</A>,
	   Ottawa Linux Symposium 2002.

        </LI><LI> Ulrich Drepper,
	  <A href="http://people.redhat.com/drepper/futex.pdf">
	    Futexes Are Tricky</A>, Red Hat (v 1.4, 2008).

       </LI></UL>

</LI><LI> Memory Management and Virtual Memory
     <A href="http://www.courses.ncsu.edu/csc501/lec/001/readings/lec3www.pdf">PDF</A> /
     <A href="http://www.courses.ncsu.edu/csc501/lec/001/readings/lec3www.ppt">PPT</A>
     <BR>
     Textbook Chapters 7 and 8
       <UL>
       <LI> P. Barham et al., <A href="http://www.cl.cam.ac.uk/netos/papers/2003-xensosp.pdf">Xen and the Art of Virtualization.</A> SOSP 2003.

       </LI></UL>

       Background References:

       <UL>

       <LI>  J. S. Chase, H. M. Levy, M. J. Feeley, and E. D. Lazowska.
		<A href="http://www.acm.org/dl">
                Sharing and Protection in a Single-Address-Space Operating
                System.</A>  ACM Transactions on Computer Systems, Vol. 12, No. 4,
                November 1994.

	</LI></UL>

</LI><LI> Uniprocessor, Multiprocessor and Real-Time Scheduling
     <A href="http://www.courses.ncsu.edu/csc501/lec/001/readings/lec4www.pdf">PDF</A> /
     <A href="http://www.courses.ncsu.edu/csc501/lec/001/readings/lec4www.ppt">PPT</A>
     <BR>
     Textbook Chapters 9+10
       <UL>

       <LI> Carl A. Waldspurger, William E. Weihl. <A href="http://www.usenix.org/publications/library/proceedings/osdi/full_papers/waldspurger.pdf">
       Lottery Scheduling: Flexible Proportional-Share Resource
       Management</A>.
       First Symposium on Operating Systems Design and Implementation, 1994.

       </LI></UL>

</LI><LI> I/O and File Management
     <A href="http://www.courses.ncsu.edu/csc501/lec/001/readings/lec5www.pdf">PDF</A> /
     <A href="http://www.courses.ncsu.edu/csc501/lec/001/readings/lec5www.ppt">PPT</A>
     <BR>
     Textbook Chapters 11+12
       <UL>
 
       <LI>
       David A. Patterson, Garth Gibson, and Randy H. Katz, 
       <A href="http://www.acm.org/dl">
       A case for
       redundant arrays of inexpensive disks (RAID)</A>, ACM SIGMOD
       International Conference on Management of Data (Chicago, IL),
       pages 109-116, 1-3 June 1988.

       </LI><LI> M. Rosenblum and J. K. Ousterhout. <A href="http://www.acm.org/dl">
       The Design and Implementation of a Log-Structured File System.</A>
       ACM Trans. on Computer Systems, Vol. 10, No. 1, February 1992. 

       </LI></UL>

       Background References:

       <UL>

       <LI> 
       Pei Cao, Edward W. Felten, Anna R. Karlin, Kai Li .
       <A href="http://www.acm.org/dl">
       Implementation and performance of integrated
       application-controlled file caching, prefetching, and disk
       scheduling. </A>
       ACM Trans. on Computer Systems, Vol. 14, No. 4, November 1996,
       pp. 311-343.
     
      </LI><LI> Juan I. Santos Florido. <A href="http://linuxgazette.net/issue55/florido.html"> Journal
      File Systems</A>. Linux Gazette, No 55, July 2000.

      </LI><LI> Mathur, Avantika; Cao, MingMing; Bhattacharya, Suparna;
      Dilger, Andreas; Tomas, Alex; Vivier,
      Laurent. <A href="http://www.kernel.org/doc/ols/2007/ols2007v2-pages-21-34.pdf">
      "The new ext4 filesystem: current status and future plans"</A>,
      Proceedings of the Linux Symposium, 2007.

       </LI></UL>

</LI><LI> Communication in Tightly Coupled Systems
     <A href="http://www.courses.ncsu.edu/csc501/lec/001/readings/lec6www.pdf">PDF</A> /
     <A href="http://www.courses.ncsu.edu/csc501/lec/001/readings/lec6www.ppt">PPT</A>
     <BR>
     Textbook Chapter 13
       <UL>

       <LI>  David Culler, Richard Karp, David Patterson, Abhijit
     Sahay, Klaus Erik Schauser, Eunice Santos, Ramesh Subramonian, and
     Thorsten von Eicken.
		<A href="http://www.acm.org/dl">
		 LogP: towards a realistic model of parallel computation.</A>
		 In Proceedings of Principles and Practice of Parallel
		 Programming, 1993.

       </LI><LI>  T. von Eicken, D. E. Culler, S. C. Goldstein, and K. E. Schauser.
		<A href="http://www.acm.org/dl">
                Active Messages: A Mechanism for Integrated Communication and
                Computation.</A>  In Proceedings of the 19th Annual International
                Symposium on Computer Architecture, May 1992.

       </LI></UL>

</LI><LI> Protection and Security
     <A href="http://www.courses.ncsu.edu/csc501/lec/001/readings/lec7www.pdf">PDF</A> /
     <A href="http://www.courses.ncsu.edu/csc501/lec/001/readings/lec7www.ppt">PPT</A>
     <BR>
     Textbook Chapter 16
       <UL>

       <LI> <A href="http://www.acm.org/dl">Detection and prevention of stack
       buffer overflow attacks</A> by Benjamin A. Kuperman, Carla
       E. Brodley, Hilmi Ozdoganoglu, T. N. Vijaykumar, Ankit Jalote
       in Communications of the ACM Volume 48, No 11, Nov 2005, pp 50 - 56.

       </LI></UL>

</LI><LI> Distributed Systems
     <A href="http://www.courses.ncsu.edu/csc501/lec/001/readings/lec8www.pdf">PDF</A> /
     <A href="http://www.courses.ncsu.edu/csc501/lec/001/readings/lec8www.ppt">PPT</A>
     <BR>
     Textbook Chapter 14+15

</LI><LI> Peer-to-Peer Systems
     <A href="http://www.courses.ncsu.edu/csc501/lec/001/readings/lec10www.pdf">PDF</A> /
     <A href="http://www.courses.ncsu.edu/csc501/lec/001/readings/lec10www.ppt">PPT</A>
     <BR>

       <UL>

       <LI> <A href="http://www.acm.org/dl">Chord: A Scalable
       Peer-to-Peer Lookup Protocol for Internet Applications</A> by Ion
       Stoica, Robert Morris, David Liben-Nowell, David R. Karger,
       M. Frans Kaashoek, Hari Balakrishnan in SIGCOMM'01.

       </LI></UL>

</LI><LI> Distributed File Systems
     <A href="http://www.courses.ncsu.edu/csc501/lec/001/readings/lec9www.pdf">PDF</A> /
     <A href="http://www.courses.ncsu.edu/csc501/lec/001/readings/lec9www.ppt">PPT</A>

       <UL>
       <LI>S. Ghemawat, H. Gobioff, S. Leung,
 	  <A href="http://labs.google.com/papers/gfs-sosp2003.pdf">The
 	  Google File System</A>, Symposium on Operating Systems
 	  Principles, October 2003.
       </LI><LI> Jeffrey Dean, Sanjay Ghemawat, <A href="http://www.acm.org/dl"> 
          MapReduce: simplified data processing on large clusters</A>,
          Communications of the ACM, Volume 51,  Issue 1  (January 2008)
       </LI></UL>

</LI><LI> nVidia CUDA Introduction
     <A href="http://www.courses.ncsu.edu/csc501/lec/001/readings/cuda.pdf">PDF</A> /
     <A href="http://www.courses.ncsu.edu/csc501/lec/001/readings/cuda.ppt">PPT</A>
     <UL>

</UL>



</LI></UL></BODY></HTML>